/*
 * @Author: SeonHu
 * @Date: 2025-09-16 14:44:19
 * @LastEditors: SeonHu
 * @LastEditTime: 2025-09-23 15:14:50
 * @FilePath: \bg-vben\src\api\message\model\index.ts
 * @Description:
 * Copyright © 2020-2025 SANQING Corporation, All rights reserved.
 */
import { MessageLevelEnum } from '@/enums/messageLevelEnum';
import { MessageSendWayEnum } from '@/enums/messageSendWayEnum';
import { MessageTypeEnum } from '@/enums/messageTypeEnum';

/** 消息简单DTO */
export interface MessageDtoSimple {
  /** 编号 */
  Id: bigint | string;

  /** 方法名 */
  Method: null | string;

  /** 消息图标 */
  Icon?: null | string;
  /** 消息类型 */
  MessageType: MessageTypeEnum;
  /** 消息级别 */
  MessageLevel: MessageLevelEnum;
  /** 标题 */
  Title?: null | string;
  /** 内容 */
  Content?: null | string;
  /** 发送时间 */
  SendTime: Date;
  /** 系统消息 */
  IsSystem: boolean;
  /** 发送者编号 */
  SenderId?: bigint | null | string;
  /** 发送者名称 */
  SenderName?: null | string;
  /** 发送者昵称 */
  SenderNickname?: null | string;
  /** 阅读时间 */
  LastReadTime?: Date | null;
  /** 阅读方式 */
  LastReadWay?: MessageSendWayEnum | null;

  /** 是否已读 */
  IsRead: boolean;
}

/** 消息DTO */
export interface MessageDto extends MessageDtoSimple {
  /** 数据体 */
  Payload: any;
}

/** 消息请求DTO */
export interface MessageRequestDto {
  /** 请求方式 */
  RequestWay: MessageSendWayEnum;
  /** 消息编号 */
  MessageIds: (bigint | string)[];
}

/** 消息读取DTO */
export interface MessageReadDto extends MessageRequestDto {
  /** 设置已读/未读 */
  Read: boolean;
}
